<!doctype html>
<!--
@license
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
  <head>
    <title>Test Promise Polyfill</title>
    <script>window.Promise = null;</script>
    <script src="../webcomponents-loader.js"></script>
    <script src="../../web-component-tester/browser.js"></script>
  </head>
  <body>
    <script>
      suite('Promise', () => {
        test('Promise exists', () => {
          assert(window.Promise);
        });
        test('resolve', () => {
          return Promise.resolve('hi!');
        });
        test('reject', () => {
          return Promise.reject('foo').then(() => {throw 'nope!'}, () => {});
        });
        test('race', () => {
          return Promise.race([Promise.resolve(), Promise.resolve()]);
        });
        test('all', () => {
          return Promise.all([Promise.resolve(), Promise.resolve()]);
        });
        test('catch', () => {
          return Promise.reject('nope!').catch(() => {});
        });
        test('then', () => {
          return Promise.resolve().then(() => {});
        });
        test('finally', (done) => {
          Promise.resolve().finally(() => {
            done();
          });
        });
      })
    </script>
  </body>
</html>